Skip to content

账号/权限体系规划

tapd

TODO:

  1. 删除部门需要涉及哪些变动?

代码

  • gm_admin
  • 重构 MySQL 的引擎部分
  • 增加一个用户 superman
  • 增加一个 app,对应前端的新工程。根据登录用户的不同选择不同的前端工程(原来 gm admin 对应的前端工程 和 勇哥新写的工程)
  • gm_accout
  • 新建工程
  • 实验功能
    • 使用 JSON Schema 验证接口参数
    • 自动生成文档
  • gm_management gm_service

  • 删除 department 相关的代码,将 role 和 user id 关联起来

数据库

xnn_core_product

auth_permission

ALTER TABLE `tbl_permission` ADD `type` 
  TINYINT(1)  NULL  DEFAULT '0'  # breaking change,需要默认值
COMMENT '1: read; 2: write; 3: exeute';

auth_permission_classify

删除 django_content_type 和 auth_permission_classify 这两张表(可以晚点再删除),把他们的数据放到这里。

CREATE TABLE `tbl_permission_class` (
  `id` int(11)        unsigned  NOT NULL  AUTO_INCREMENT,
  `level` tinyint(1)  unsigned  NOT NULL  COMMENT '1 or 2',
  `name` varchar(11)  NOT NULL,
  `parent_id` int(11) unsigned  DEFAULT NULL  COMMENT 'parent_id==NULL if and only if level==1',
  PRIMARY KEY (`id`)
) CHARSET=utf8mb4;

auth_department

废弃此表

auth_role

废弃 department_id 字段,

ALTER TABLE `auth_role` ADD `user_id` 
TINYINT(1)  NULL  # breaking change,需要默认值

auth_role_user

CREATE TABLE `auth_role_user` (
  `id`      int(11)  unsigned  NOT NULL  AUTO_INCREMENT,
  `user_id` int(11)  unsigned  NOT NULL,
  `role_id` int(11)  unsigned  NOT NULL,
  PRIMARY KEY (`id`)
) CHARSET=utf8mb4;

删除一些不用的权限

详见权限整理V1.0.1.xlsx

management

改动同 xnn_core_product。 特别的,MA 没有需要删除的权限。

接口

移动的接口

这些接口只是从一个工程移动到另一个工程,接口代码和 api 没有变动

  • gm_service
  • 将「网站管理」和「运营管理」这两个 tabs 的接口移动到 gm admin
    • 「网站管理」
    • 「运营管理」
  • 将右上角的「用户管理」对应的接口移动到 gm admin
    • s
    • 「城市管理员管理」
    • 「station 管理员管理」
    • 其他用户
    • 「部门管理」废弃
    • 「角色权限管理」
    • 「员工账号管理」
  • 对应的 urls:
    • ^admin/ (website/gadmin)
    • ^partner-site/ (website/partner_site)
  • 文档补齐
  • gm_management
  • 将右上角的「账号管理」对应的接口移动到 gm admin
    • 加盟商
    • 加盟商管理员
  • 对应的 urls:
    • ^admin/ (website/gadmin)

新增的接口

gm_admin

/admin/partner/permissions 加盟商管理,按照权限查看
method GET
request
    level_1     int     O   一级权限的id,不传代表全部一级权限
    level_2     int     O   二级,同上
    name        string  O   要搜索的权限名,不传代表全部
response
    {
        data: [  // permision list, all fields below is M
            {
                name:  
                level_1:
                level_2:          
                partner_num:     
                partners: [  // role list. max length is 10 
                    {
                        id:  
                        name: 
                    }
                ]
            }
        ], 
        msg: 'OK',
        code: 0,
    }


/admin/partner/permission 加盟商管理,特定权限的所有加盟商
method GET
request
    permission_id   M   int
response
    {
        data: [
            id:加盟商 id       M
            name: 加盟商名字     M
        ] 
    }

method POST
request
    permission_id   M   int
    partner_ids     M   list of int
response
    {msg: 'OK', code: 0}
/admin/station/permissions 加盟商管理,按照权限查看加盟商
/admin/station/permission 加盟商管理,按照权限查看加盟商

gm_accout

/admin/role/permissions 角色管理,按照权限查看角色
/admin/role/permission 角色管理,按照权限查看角色

删除的接口

gm_service: ^xadmin